一個 RAG 問答系統在將原始資料與輸入的問題進行處理時,都必須先經過向量化的步驟,而要向量化就需要透過詞嵌入模型(Embedding Model)。
在我們設置完向量資料庫後,接下來我們就先來看看如何設置一個 Embedding Model。
在 Qdrant 官網的 Embedding 文件中有提到,Qdrant 支援所有可用的文字和多模態密集向量 Embedding Model 以及向量嵌入服務,並沒有任何限制,因此,我們就可以使用自己想使用的 Embedding Model
首先,我們先來設置 Embedding Model,在這裡我們示範時是使用 intfloat/multilingual-e5-large 作為我們的 Embedding Model。
# 設置 Embedding Model 的名稱
model_name = 'intfloat/multilingual-e5-large'
# 設置使用的 Embedding Model(intfloat/multilingual-e5-large)
qdrant_client.set_model(model_name, cache_dir="/src/.cache")
在設置好 Embedding Model 後,我們要將經過前處理好的資料,透過 Embedding Model 進行向量化後再加入到 Qdrant 中。
# 設置 Collection 的名稱
collection_name = "{collection_name}"
# 將資料(document_content)加入到 Collection 中
document_content = "量子計算是一種利用量子力學原理..."
qdrant_client.add(
collection_name=collection_name,
documents=[document_content],
metadata=[{"theme": "量子計算"}]
)
依照上述的做法,我們就可以成功將一筆資料(document_content)透過名為 intfloat/multilingual-e5-large 的 Embedding Model 進行向量化後,加入到 Collection 中,並且在該筆資料的 metadata 中記錄了其 theme 為「量子計算」!
接下來,明天我們就來看看如何進行檢索吧~
※ 在 Hugging Face 中有提供一個 Massive Text Embedding Benchmark (MTEB) Leaderboard,提拱大量 Embedding Model 在不同語言中的測試 Benchmark。